<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>코드이그나이터에서의 URL 규칙 : 코드이그나이터 사용자설명서</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>코드이그나이터 사용자설명서 버전 2.0.2</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">목차페이지</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.com/">코드이그나이터 홈</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">사용자설명서 홈</a> &nbsp;&#8250;&nbsp;
코드이그나이터에서의 URL 규칙
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />사용자설명서 검색&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="검색" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>CodeIgniter의 URL</h1>

<p>CodeIgniter의 기본 URL은 검색엔진도 사람도 알기 쉽도록 설계되어 있습니다.
    동적시스템의 대명사라고 할 수 있는 일반적인 "쿼리 문자열" 방식 대신 CodeIgniter는 다음과 같은 <strong>세그먼트 기반의</strong>로직을 채택하고 있습니다 :</p>

<code>example.com/<var>news</var>/<dfn>article</dfn>/<samp>my_article</samp></code>

<p class="important"><strong>Note:</strong> 아래에 설명된 것처럼 쿼리문자열을 URL로 사용할 수 있습니다.</p>

<h2>URI 세그먼트</h2>

<p>Model-View-Controller 방식에 따라, URL에서 세그먼트는 다음과 같이 표현됩니다 :</p>

<code>example.com/<var>class</var>/<dfn>function</dfn>/<samp>ID</samp></code>

<ol>
<li>첫번째 세그먼트는 호출 해야하는 컨트롤러 <strong>클래스</strong>를 나타냅니다.</li>
<li>두번째 세그먼트는 클래스내에서 호출되야할 <strong>함수</strong> 또는 메서드를 나타냅니다.</li>
<li>세번째 이후의 세그먼트는 컨트롤러에 전달되는 ID와 같은 값들을 나타내고 있습니다.</li>
</ol>

<p><a href="../libraries/uri.html">URI 클래스</a> 와 <a href="../helpers/url_helper.html">URL 헬퍼</a> 는 URI 데이터를 쉽게 다루기 위한 메소드를 제공하고 있습니다.
    또한 <a href="routing.html">URI 라우팅</a> 기능을 이용하면 더욱 유연하게 URL을 다시 매핑할 수 있습니다.</p>


<h2>index.php 파일을 URL에서 제거</h2>

<p>기본적으로 <strong>index.php</strong> 파일이 URL에 포함 되어있는 형태로 되어 있습니다 :</p>

<code>example.com/<var>index.php</var>/news/article/my_article</code>

<p>간단한 규칙을 기술한 .htaccess 파일을 사용하면 간단하게 index.php를 제거할 수 있습니다.
    특정 항목을 제외한 모든 리디렉션 되는 "제외" 규칙을 이용한 방법을 사용하는 파일의 예입니다 :</p>

<code>RewriteEngine on<br />
RewriteCond $1 !^(index\.php|images|robots\.txt)<br />
RewriteRule ^(.*)$ /index.php/$1 [L]</code>

<p>위의 예제에서, index.php, images, 그리고 robots.txt를 제외한 모든 HTTP 요청을 index.php 파일에 대한 요청으로 처리됩니다.</p>


<h2>URL에 접미사(확장자) 추가</h2>

<p><dfn>config/config.php</dfn> 파일에서, CodeIgniter에서 생성되는 모든 URL에 접미사(확장자)를 추가로 지정할 수 있습니다.
    예를 들어 URL이 다음과 같다면 :</p>

<code>example.com/index.php/products/view/shoes</code>

<p>페이지를 여러가지 종류로 보이게 하기위해 옵션으로 <kbd>.html</kbd> 과 같은 접미사를 추가할 수 있습니다 :</p>

<code>example.com/index.php/products/view/shoes.html</code>


<h2>쿼리 문자열의 활성화</h2>

<p>URL에 다음과 같은 쿼리 문자열을 사용하고 싶을때도 있을 것입니다 :</p>

<code>index.php?c=products&amp;m=view&amp;id=345</code>

<p>CodeIgniter는 옵션으로 이런 것들도 지원하고 있습니다.
    이 기능은 <dfn>application/config.php</dfn> 파일에서 활성화할 수 있습니다.
    설정 파일을 열면 다음과 같은 항목이 있을 것입니다 :</p>

<code>$config['enable_query_strings'] = FALSE;<br />
$config['controller_trigger'] = 'c';<br />
$config['function_trigger'] = 'm';</code>

<p>"enable_query_strings"를 TRUE로 변경하면이 기능을 사용할 수 있습니다.
    다음 예제와 같이 컨트롤러와 메소드를 호출하기 위해 "트리거 (trigger)"에 지정된 단어 [역주 :이 예제에서는 "c" "m"].
    위 설정 $config['controller_trigger']등의 곳에 지정하는 단어를 사용하여 컨트롤러와 메소드에 액세스하십시오.</p>

<code>index.php?c=controller&amp;m=method</code>

<p class="important"><strong>Please note:</strong>쿼리 문자열을 사용하는 경우에는 세그먼트 기반 URL에서 작동하도록 설계되어 있는
    URL 헬퍼 (그리고, Form 헬퍼와 같은 URL을 생성하는 헬퍼)에서 편리하게 사용할 수있는 기능을 사용할 수 없기 때문에, 대신에 URL을 직접 짜집기를 해야합니다.</p>

</div>
<!-- END CONTENT -->


<div id="footer">
<p>
<a href="#top">상단페이지</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">사용자설명서 홈</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
다음토픽:&nbsp;&nbsp;<a href="controllers.html">콘트롤러</a></p>
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
</div>

</body>
</html>